昨天講過,版本管理的重點是協調多人之間的開發流程,所以在此不再重複講解版本管理的重要性。在此亦因為系列文章的篇幅關係,亦不會對不同的版本系統進行分析及討論。本篇會主要討論一套比較多人使用的版本管理系統 – Git。
Git最初是用於Linux核心開發的版本控制工具,它採用了分散式版本庫的作法,因此即使没有伺服器,亦可以對開發代碼進行版本控制。Git會把檔案的更改記錄保存,因此有需要的時候可以復原到以前的狀態,亦可以追蹤檔案中的差異。而當有需要提交(Commit)檔案到伺服器時,如果檔案跟伺服器的版本有衝突,亦會對提交者發出警告,避免覆蓋了其他人編輯的內容。
當你需要為程序增加一些新功能的時候,通常都會在許多不同的檔案中進行修改。而當每一次修改完成後,我們會在Git中進行一次Commit,提交修改完成後的代碼。版本系統此時就會記錄低以下的資訊:
每一個改動,Git都會以「行」作為單位去對比改動內容。
當需要增加功能的時候,我們可以利用分支(Branch)及合併(Merge)的功能,去進行我們的開發。這樣開發不同的功能期間,就不會互相干擾。直到新功能測試完成,才合併到主線上,再部署到不用的環境中。
(圖片擷取自網絡)
而在CICD Pipeline中,我們亦可以利用特殊的分支,去觸發不同環境的自動化部署。
由於本人使用Mac電腦,接下來的日子中,大部份安裝步驟都會以Mac電腦作為教學內容。如果閣下的Mac電腦中未有安裝Homebrew這個工具,建議先進行安裝,因為Homebrew有著管理及下載不同套件的功能,可以減省不少安裝上的不便。
Apple Silicon CPU在進行Homebrew安裝時,必須使用官網提供的Alternative Installs,這裡進行一次簡單的教學。
先在Terminal中運行以下的指令下載Homebrew套件。
git clone https://github.com/Homebrew/brew homebrew
然後運行以下指令進行安裝。
eval "$(homebrew/bin/brew shellenv)"
brew update --force --quiet
chmod -R go-w "$(brew --prefix)/share/zsh"
然後嘗試運行Homebrew查看安裝是否成功。
brew -v
如果能夠看見類似以下內容就代表安裝成功。
Homebrew 3.5.10
Homebrew/homebrew-core (git revision 8aff02f1f3e; last commit 2022-09-02)
當順利安裝Homebrew以後,安裝Git的過程就會很簡單。只需要運行以下的指令
brew install git
然後等待Terminal跑完所有訊息。
運行以下指令,如果成功執行,安裝就完成了。
git --version
由於Git會記錄程式碼的修改者,所以開始使用前,必須登錄你的名字和電郵地址。
在Terminal中輸入以下的指令。
git config --global user.name "Your Name" # 你的名字
git config --global user.email "Your Email" # 你的電郵
利用以下指令確認設定內容。
git config --list
如果能夠成功看到下列內容,代表設定成功。
user.name= [你的名字]
user.email= [你的電郵]
建立一個新專案的時候,我們需要初始化一個新的Git專案去管理以後的程式碼變更。
首先,建立一個新的資料夾(e.g. ~/helloworld)。然後用Terminal進入到新建立的資料夾中,然後運行以下的指令。
git init
如果成功運行後,運行以下的指令。
ls -a
如果發現資料夾中多出了一個.git的檔案,代表Git專案已經初始化成功。
首先,我們在專案中新增一個檔案,代表我們開發過程中新增的程式碼。
然後在提交前,我們先在Terminal中運行以下指令。
git status
然後應該會得到如下的返回。
這個指令可以讓我們看到當前Git專案中的狀態。
On branch master
: 當前正在使用Master分支進行開發。No commits yet
: 當前分支未有任何CommitUntracked files: …. helloworld.txt
: 我們新增的helloworld.txt
未有被Git專案追蹤為了讓新增的檔案提交到Git專案中,運行以下的指令。
git add .
add .
: 把所有檔案加入到準備提交的內容中,如果你要選擇性提交的話,也可以輸入檔案的名稱。然後再運行以下指令。
git commit -m "Init Hello World Project"
commit
: 正式進行提交-m "Init Hello World Project"
: 是次提交的資訊,雙引號中可以輸入你想提交的關於這個提交的簡短開發資訊完成!你已經學會如何使用Git進行版本管理了!
雖然Git可以讓大家在本機進行開發,但當一個專案需要多於一位開發人員的時候,就必須有一條公用的Repository去同步大家的開發內容。
市面上有很多免費的SaaS軟件支援Git的版本管理系統,最有名的如GitLab、GitHub和Bitbucket等。這次我會以我慣用的GitLab作為範例。
首先,建立你的個人GitLab帳戶。因為這個部份比較簡單的關係,這裡會略過GitLab的帳戶註冊流程。然後在GitLab的目錄中,按下Create new project
,建立一個新的專案。
按下Create blank project
。
輸入你的專案名稱,其他設定可按需要更改,此處不作額外說明。然後按下Create project
。
專案成功建立後,應該可以找到一個Clone
的按鈕。按下然後在當中找到Clone with HTTPS
的部份,然後Copy下Git專案的URL。
回到Terminal,輸入以下指令。
git remote add origin {你的專案URL}
remote add
: 增加一個remote
的Git repositoryorigin
: remote
的簡短名稱,因為一些特殊情況可能需要使用多於一條remote
專案,這個名字可以方便分辨在使用哪一條remote repository
URL
: 剛剛Git專案的URL,可以使用你剛剛新建的專案連結然後,我們將本機的master branch
同步到remote
的專案中。
git push -u origin master
這裡應該不用多解釋吧?就是把master branch
的內容push
到origin
這個remote repository
中。
如果是第一次push的話,你需要輸入你的帳戶和密碼。成功後,你會見到類似以下的畫面。
這樣你就成功將你的開發內容發布到Repository中,其他小伙伴就可以透過此共用的Git專案去跟你同步大家的開發內容。
本章只是簡單介紹一下如何使用Git的基本功能。其實Git在今天已經是一個比較流行的管理工具,其中提供的功能可以讓開發更加容易管理及協調。因此學會Git的運作,也算是DevOps概念中的基本功。本章篇幅所限,未能更深入去講解Git的深入使用方式,建議大家可以多作了解,讓你管理源碼的時候更加快捷方便。
現在,我們有了存放原始碼的地方,我們明天就講解一下持續整合的工具吧!
這篇寫著寫著就有點太長了,然後很多想講的內容好像都没有講到。明天起我應該會把內容分開來講解,不然這個文字量會讓我崩潰的⋯⋯
另外,有關注本系列的友人跟小弟說,可能由於本人是香港人的關係,文章內的用語跟台灣慣常使用的字眼有些許出入。如果有看不明白的朋友歡迎隨時提出,使我們能夠更好地交流啊!